{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Plotting the boundary of a neural network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from utils import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "alien_dataset = pd.DataFrame({\n",
    "    'aack':[1,2,0,0,1,1,2,2],\n",
    "    'beep':[0,0,1,2,1,2,1,2],\n",
    "    'happy': [0,0,0,0,1,1,1,1]})\n",
    "\n",
    "X = alien_dataset[['aack', 'beep']]\n",
    "y = alien_dataset['happy']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_function(f):\n",
    "    plot_points(X, y, 100)\n",
    "\n",
    "    def h(x,y):\n",
    "        return f(x,y)>=0.5\n",
    "    xx, yy = np.meshgrid(np.arange(-0.5,3,0.005),\n",
    "                         np.arange(-0.5,3,0.005))\n",
    "    Z = np.array([h(i[0], i[1]) for i in np.c_[xx.ravel(), yy.ravel()]])\n",
    "    Z = Z.reshape(xx.shape)\n",
    "    plt.contourf(xx, yy, Z, colors=['red', 'blue'], alpha=0.25, levels=range(-1,2))\n",
    "    plt.contour(xx, yy, Z,colors = 'k',linewidths = 3)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "def step(x):\n",
    "    if x >= 0:\n",
    "        return 1\n",
    "    else:\n",
    "        return 0\n",
    "\n",
    "def line_1(a,b):\n",
    "    return step(6*a + 10*b - 15)\n",
    "\n",
    "def line_2(a,b):\n",
    "    return step(10*a + 6*b - 15)\n",
    "\n",
    "def bias(a,b):\n",
    "    return 1\n",
    "\n",
    "def nn_with_step(a,b):\n",
    "    return step(step(6*a + 10*b - 15) + step(10*a + 6*b - 15) - 1.5)\n",
    "\n",
    "def sigmoid(x):\n",
    "    return np.exp(x)/(1.0 + np.exp(x))\n",
    "\n",
    "def nn_with_sigmoid(a,b):\n",
    "    return sigmoid(1.0*sigmoid(6*a + 10*b - 15) + 1.0*sigmoid(10*a + 6*b - 15) - 1.5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Boundaries of the first layer (linear classifiers and bias)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEHCAYAAABfkmooAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dd3xUZdr/8c+VAgktShEQVCyIBTtrw1UnJASpYnkEHxFsPCrK4vqsKKuuq65ldREVC9hRZEVYkSolOf4sKIodZHdFVGClSAuElnb//sjggzEzEyA5Z2byfb9e82JmzpXJlxPIddp9H3POISIiEk1K0AFERCT+qVmIiEhMahYiIhKTmoWIiMSkZiEiIjGlBR2gNmRlNXetWrULOoaISEL5978/Weeca1HVsqRsFq1atWPMmIVBxxARSSihkP0QaZkOQ4mISExqFiIiEpOahYiIxJSU5yxERHYxK6Fhw5Wkpu4IOkrcKCvLYOvWtjiXXu2vUbMQkaTWsOFKWrZsTFZWO8ws6DiBc85RWLieNWtWUlR0aLW/ToehRCSppabuICurmRpFmJmRldVsj/e01CxEJOmpUfzS3qwPNQsREYlJzUJEpJLVq1dx/ClHsWbN6hr5vNatG0Vd/sMP33PaaR336DOvvXYQU6ZM+tX7b7zxOqeeeixZWSl8+mnNDU5WsxARqeTBUX9l+bq1PDjqr0FH2WPHHNOR8eP/QefOZ9fo56pZiIjsZvXqVYyf8BLl+fm8MuGlGtu7ACgqKqJXry789rcnc/rpxzFjxps/LystLeV//mcgZ5xxPAMGXMS2bdsA+OyzTzjvvHM4++xTOP/8PFavXhX1e3TocDTt23eoscy7qFmIiOzmwVF/pfzygXDSSZQPuLxG9y4yMjIYP/4N3n33U2bM8Bgx4mZ23dr6m2/+xRVXDOaDD76kceMmPPvsk5SUlPCHP9zIyy9P4p13PmHAgCu5++4/1liePaFxFiIiYbv2KooXLwagePgtvNKxI8OH3ULLlq32+fOdc/z5zyOYP/8dUlJSWLXqP6xduwaAtm0P4vTTOwNwySWX8fTTj5GT040lSxbRp08uAGVlZbRs2Xqfc+wNNQsRkbCf9ypah38ht279897FyPtH7vPnT5w4nvXrf+Kddz4hPT2djh3bsWNHxXiHypezmhnOOY466ljy8z/Y5++9r3QYSkSE3fYqht/yi/eLh99SY+cuCgsLad78ANLT03nnHY/ly/9vRvAVK5azYEFFU5g0aQJnnHEW7dt3YN26n35+v6SkhCVLFu9zjr2hZiEiQhV7Fbvstnexry655L/57LOFnHNOJyZOHM+RRx7187IOHY5mwoSXOOOM49m4cQNXXXUd9erV4+WXJ/GnPw3nzDNPoHPnE1mwYH7U7zFt2hscdVRbPvroAy6+uAfnn5+3z7kBbNfJlWTSoUMnp5sfiQhAVtYSjjji6Kg1q1ev4vjTjmXH4sW/bhYAq1aR0bEjXy1YXCPnLuLB0qVLKCz85XoJhewT51ynquq1ZyEidV7EvYpdanDvIlGpWYhInTdz5psUPzoKzCI+ih8dxYwZU4KOGhhdDSUidd6/vlwWdIS4pz0LERGJSc1CRERiUrMQEZGY1CxEpM475MAmNGliMR+HHNhkrz7fzynKN2zYQJ8+uZx4Ynv69Mll48aNe/S5kahZiEidt7FoCw5iPjYWbQksY3U98sgDnHNOFz7//BvOOacLjzzyQI18rpqFiIhP/JiifMaMN7n00oEAXHrpQKZPr5nLfQNtFmZ2kJl5ZrbEzBab2e+qqDnXzArN7PPw484gsoqI7Cs/pij/6ac1tGpVMbiwVavWrFu3tkayBz3OohS42Tn3qZk1Bj4xs7nOua8r1b3rnOsZQD4RkRqjKcr3knNuFbAq/HyLmS0B2gCVm4WISMLzY4ryFi1asnr1Klq1as3q1ato3vyAGskeN+cszKwdcBKwoIrFZ5jZF2Y2y8yOjfD1g81soZktLCz8qRaTiojsHT+mKO/evTevvvoSAK+++hI9evSpkexx0SzMrBEwGRjmnNtcafGnwCHOuROAx4Eqz9Y458Y65zo55zplZbWo3cAiInvBjynKb7rpVjxvLiee2B7Pm8tNN91aI9kDn6LczNKB6cBs51zMW1GZ2fdAJ+fcukg1mqJcRHapzhTlTZoY1flNaMDmzclxW4eEmqLcKg7SPQcsidQozKxVuA4zO5WKzOv9SykiIkFfDdUZGAB8ZWafh98bARwM4Jx7GrgIuM7MSoHtQD8X9O6QiCSV/Rs1xqox4G7/Ro19SBOfgr4a6j0q9uyi1YwGRvuTSESSkXPuV1cb7e6HHyufKk1ue7O9HRcnuEVEaktZWQaFhev36hdkMnLOUVi4nrKyjD36uqAPQ4mI1KqtW9uyZs1K1q3TJfW7lJVlsHVr2z36GjULEUlqzqVTVHRo0DESng5DiYhITGoWIiISk5qFiIjEpGYhIiIxqVmIiEhMahYiIhKTmoWIiMSkZiEiIjGpWYiISExqFiIiEpOahYiIxKRmISIiMalZiIhITGoWIiISk5qFiIjEpGYhIiIxqVmIiEhMulNewHp1707R9m0x6xplNmDazJk+JKrb1q9fz4033cToUaNo2rRp0HHqHK3/+KU9i4AVbd+GBzEf1Wkosu/GTZjA6o0bGTdhQtBR6iSt//gVaLMws4PMzDOzJWa22Mx+V0WNmdljZrbUzL40s5ODyCrJb/369cyaPRs3ciSzZs9mw4YNQUeqU7T+41vQexalwM3OuaOB04EhZnZMpZrzgPbhx2DgKX8jSl0xbsIEXF4etG9Pedeu2rr1mdZ/fAu0WTjnVjnnPg0/3wIsAdpUKusDjHMVPgT2M7PWPkeVJLdrq7a0f38ASvv319atj7T+41/QexY/M7N2wEnAgkqL2gArdnu9kl83FMxssJktNLOFhYU/1VZMSVI/b9U2a1bxRrNm2rr1kdZ//IuLZmFmjYDJwDDn3ObKi6v4EverN5wb65zr5JzrlJXVojZiSpKqvFW7i7Zu/aH1nxgCbxZmlk5FoxjvnPtHFSUrgYN2e90W+NGPbFI3/Gqrdhdt3fpC6z8xBH01lAHPAUuccyMjlE0FLg9fFXU6UOicW+VbSElqkbZqd9HWbe3S+k8cQe9ZdAYGANlm9nn40d3MrjWza8M1M4FlwFLgGeD6gLJKEoq4VbuLtm5rldZ/4gh0BLdz7j2qPiexe40DhviTyH+NMhsQquYIbql5899/n9LVq2DypIg1pcD7rVozbEjS/jMMjNZ/4rCK38XJpUOHTm7MmIVBxxARSSihkH3inOtU1bKgD0OJiEgCULMQEZGY1CxERCQmNQsREYkpKZvFN998Rl5eJnPnvhp0FBGRpJCUV0OZ2S/+UgceeBhjxnxGo0ZNgookIhL36vzVUD/+uIxevbLo0iWNV165L+g4IiIJp07sWVRl//1bMm7cv7W3ISISVuf2LE458kjmPvQQ9dLTI9Zs3LiGXr2yCIVSGD369z6mExFJPEnZLAByOnVi55w5lBcU0PO006JUOiZPfoRQyOjVa382btS9MEREKkvaZrGLmTHtgQdwnsfHTz5JkwaR51gqKtrEBRccQChk3HffAJLxEJ2IyN5I+maxu05HH03hjBmUFxRwdbdupFjkOQznzn2F7OwUunVrwLfffuVjShGR+FOnmsUuZsYzw4dTVlDAyokTaXfAARFrd+7cztVXH08oZPz+910oLS3xMamISHyok81id21atOC7117DeR73X3016WmRZ23/7LMCcnPrkZOTzvvvT/UxpYhIsOp8s9jdrf/93xTPncu2WbM4q2PHiHVlZaXcfnsfQiFj4MBj2LRpnY8pRUT8p2ZRhcyMDN59/HGc51Hw8MM0qF8/Yu3y5Uvo27cFXbqkMnbsbTopLiJJSc0ihtApp7D1rbcoLyhgYG5uxLry8nImTHiA7OwU+vZtxbJli3xMKSJSu9QsqsnMeHHECJzn8Z+JE2naqFHE2k2b1nDVVceRnZ3CLbfk6aS4iCQ8NYu9cGCLFqyfNg3nefx50KCINxF3zvHxx3PIza1Ht24NWbBglq85RURqSlLODdWpQwe3cMwYX7/n9h076DBwICvWro1Ze9hhx/PUUx9Rr17kcyEiIn6rc3NDBSEzI4Pl4UtwXxg+POqAv2XLviQvL4OcnHSmTHnKx5QiInsn0GZhZs+b2Vozq/JssJmda2aFZvZ5+HGn3xn3xqBu3SgrKKAsP59j27WLWFdWVsqjj15PKGT0738oxcU7/QspIrIHgt6zeBHoFqPmXefcieHH3T5kqjEpKSkseuEFnOfx2h13kJaaGrF29ervycvLIDs7hVdeud/HlCIisQXaLJxz7wAbgszgl//KzqZk3jzK8vPpfOyxEeucczz33AhCIaNv35Zs21bkY0oRkaoFvWdRHWeY2RdmNsvMIv6WNbPBZrbQzBb+VFjoZ749kpKSwnujR+M8j3kPP0zDjIyItZs2raVHj8aEQsaTT97sY0oRkV+K92bxKXCIc+4E4HFgSqRC59xY51wn51ynFllZvgXcF11OOYWiWbMonTePPmeeGfESXIDXXx9JKGT06NGENWt+8C2jiAjEebNwzm12zhWFn88E0s2secCxalxqaipT/vIXyj2Pf48bR+umTSPWbtu2hX792hEKGXfccQFlZWU+JhWRuiqum4WZtTKruAbVzE6lIu/6YFPVrvYHHcSPkydTXlDALZdcQlpK5B/Re++9QU5OGl27ZvDZZ//Px5QiUtcEOijPzCYA5wLNgTXAn4B0AOfc02Z2A3AdUApsB37vnJsf63ODGJRXmzZv3crZQ4fyxbJlMWs7dPgNf/tbPg0bNvYhmYgkk2iD8jSCO8FMmz+fi+66i+KS6PNNpaamceWV93Dppbf6lExEEp1GcCeRXmeeyc45cyiZO5eeZ5wRsa6srJRnnrmNUMi45JJDWLNmuY8pRSTZqFkkqLS0NKbddx/O8/jXSy/RMDMzYu3atcvp1+8QsrNT+fOfL9FJcRHZY2oWSeDIgw+maOZMygsKuOH88yPWOVfO229PJCcnjR49svjii3d9TCkiiUznLJJUYVER7S+7jOoMUOzY8SxGjXqb1CjTkYhI8tM5izooq1Ej1k6ZgvM8Hhg8OOqAv0WL3iMnJ43c3Hp43mu+ZRSRxBFzz8LMmgAtnHPfVnr/eOfcl7UZbm9pz6JqJSUlHHnZZXxfjXtuHHpoR5555nPtbYjUIXu9Z2Fm/wX8E5hsZovN7De7LX6x5iKKH9LT0/kufM+NJ4YOJTXKgL/vvltETk4aXbqkMnPm8z6mFJF4FOsw1AjgFOfcicAVwMtmdkF4WbQjGxLnru/bl9L8fHbOns2xhxwSsa68vJyHHrqKUMjo168dJSXFPqYUkXgRq1mkOudWATjnPgJCwB/NbCiQfGfG66B69eqx6MUXcZ7HP+66i4x69SLWrlnzA1271ic7O4VXX33Qx5QiErRYzWKLmR2+60W4cZwL9AEi35RBElLfc85h++zZ7Jw9m3NPOCFinXOOZ565lVDI6NOnORs2xD4HIiKJLVazuI5Kh5ucc1uouLvdlbUVSoJVr149vFGjcJ7H52PH0qxx5HmmNm9ez4UXtiQUMh5+eDDJeCm2iMRoFs65L5xzS6t4v8Q5N37XazP7oDbCSfBOaN+edVOnUl5QwLW9e5NikU9VzZjxDNnZKZx3XiO++eZTH1OKSG2rqXEWkW/3JknBzHjqppsoKyhg9eTJHHHggRFrd+zYyuDBpxAKGTffnKuT4iJJoKaahY491CEtmzblm/HjcZ7HuFtvjXrPjU8/nUfXrvXp2jWDKVOe9DGliNQkjeCWfTIgL4+S/Hy2v/UWZx13XMS6kpKdPProEEIhY8CADjopLpJgqtUszOyYKt47d/eXNRVIElNG/fq8+9hjOM/jszFjyEhPj1i7cuW/ufDClnTpksbIkdfrpLhIAqjunsVEMxtuFTLN7HHg/t2WD6iFbJKgTjzySLbPmUN5QQH9u3SJWFdeXsa0aU+RnZ1C795N+fbbL3xMKSJ7orrN4jTgIGA+8DHwI9B510Ln3KKajyaJzsx49fbbcZ7Hj6+/TlbDhhFrt2zZyNVXn0golMKIEb21tyESZ6rbLEqouAd2JhVXPn3nnCuvtVSSdFo3b86m6dNxnsdNF14YpdLxwQfTyM5OoWvXTD7+eK5vGUUksuo2i4+paBa/Ac4C+pvZpFpLJUlt5A034DyPLdOn03L//SPWlZTs4JZbuhIKGUOGdNbehkiAqtssrnLO3RkejLfaOdcHeLM2g0nya9SwIav/8Q+c53HvlVdGHfD39dfzyc5OIScnnfnzp/uYUkRAd8oLXK/u3dmyfXvMusaZmUybOdOHRMEq2rqV46++mu9Wr45Ze/DBR/Pcc1+SlpZWY99//fr13HjTTYweNYqmTZvW2OdK9Wj9Byuu75RnZs+b2Vozq/IkefgKrMfMbKmZfWlmJ/udsTZt2b6dtyHmozoNJRk0atiQZRMm4DyPF4cPp16URrB8+RJyc9PD99x4oUa+/7gJE1i9cSPjJkyokc+TPaP1H78CbxZU3ESpW5Tl5wHtw4/BwFM+ZJI4MLBbN3bOncvWmTM5+cgjI9ZV3HPjSkIh4+KL27J16+a9+n7r169n1uzZuJEjmTV7Nhs2bNjb6LIXtP7jW+DNwjn3DhDtX0UfYJyr8CGwn5m19iedxIMGmZl8MmYMzvPw/vY3mjRoELF23br/0LNnFqFQCmPH3rZHJ8XHTZiAy8uD9u0p79pVW7c+0/qPb4E3i2poA6zY7fXK8HtSB5178slsmj6dkrlzuSw7O8rUAY4JEx4gOzuFXr325/vvl0T93F1btaX9+wNQ2r+/tm59pPUf/xKhWVT1++BXm4tmNtjMFprZwp8KC32IJUExM9LS0hh3++2UFRSw9JVXaNu8ecT6oqJNXHHFMYRCxp/+dDGlpaW/qvl5q7ZZs4o3mjXT1q2PtP7jXyI0i5VUjB7fpS0VI8h/wTk31jnXyTnXqUVWlm/hJDgWvtT2sAMPZMXrr+M8jyeHDo16Ce4770wiNzedvLwGzJ1bcUuWylu1u2jr1h9a/4khEZrFVODy8FVRpwOFu+4LLmJmPzcNgOv69qWsoICiGTM44YgjIn5dcfF27rvvMkIh44orj6c09Nv/26rdRVu3vvjVXsUuWv9xJfBmYWYTgA+ADma20syuMrNrzezacMlMYBmwFHgGuD6gqJJAGjZowOfPPIPzPPIfeoj01NSItVs2/4ibNhxy0uHZO36xTFu3tSvSXsUuWv/xI/Bm4Zzr75xr7ZxLd861dc4955x72jn3dHi5c84Ncc4d7pw7zjm3MOjMkliyO3WieN48SufNo1unKscbVSgrhfH3Qsigb0tYuVRbt7Us4l7FLlr/caPmhr7KXmmcmcm51RzBLfsmNTWVWQ89BMC/V6zg5GuuYevOnVUXb1oLA9oDUMoBvN8qm2FDhvgVtc6Y//77lK5eBZMjTzVXCrzfqrXWf8A03YfUeZffdx8vz409u21GRkNGjnybo4+OsnciksDieroPkaCNGzEC53msnTyZ/aLcc2PHjq1cf/1vCIWM4cO7+5hQJHhqFiJhLZo2ZWP4nhu/u+CCqPcK/uijWYRCRm5ufRYtWuBbRpGgqFmIVGHUjTdS7nmsmTSJllFmPy0tLebGG08nFDKuu+403XNDkpaahUgUBzRrxurJk3Gex8hrryUtJfJ/mX/+86Of77nx7rtTfEwpUvt0gltkD23asoUzbriBfy5fHrO2bdv2jB37OZmZkSc/FIkXOsEtUoP2a9yYJS+9hPM8/vHnP9Ogfv2ItStXfkP37g3Jzk7htddG+phSpGapWYjsg75nn83Wt96iZO5c+nTuHLHOOcfTT99MKGRccEErVq/+wceUIvtOzUKkBqSlpTHl3ntxnsdnY8YQbTLLjRvX0L9/O0Ih4+GHB+ukuCQENQuRGnbikUeydsoUygsKuOeKK6L+J5sx4xmys1Po0aMJH3wwy7eMIntKzUKklpgZt19+OWWex4Y33+TwAw+MWLtt2xZGjOhOKGQMGXIm27Zt9TGpSGxqFiI+2L9JE5aOH4/zPCbeeSepUS7B/frrD+jRoxG5ufWZNOlRH1OKRKZmIeKzi0MhSvPzKZk7l1OPOipiXWlpMU88MYxQyLj44oNYu3aljylFfknNQiQgaWlpLHjqKZzn8dGTT1IvPT1i7bp1K7nkkoPIzk7lqaf+18eUIhXULETiwG+OPpqdc+ZQXlBA99NOi1jnXDkTJ/6NUMjo2XM/VqxY6mNKqcvULETiiJkx44EHcJ7H0pdfpmGUAX9btxZy+eXtCYVSuOeefj6mlLpIzUIkTh3eti1Fb72F8zwu79o1SqWjoOA1QiGjW7eGLF/+jW8Zpe5QsxBJAC/ddhvO8/hm3DiaNmoUsW7nzm0MHHgkoZDxv/+bpwF/UmPULEQSyBEHHcT6adNwnscfL72UlCiX4H7yyRyys1PIza3PF1+862NKSUZqFiIJ6t5rrqEsP581kyfTrmXLiHWlpcUMG3Y2oZBxzTUns3PnDh9TSrJQsxBJcAc0bcp3f/87zvMYc/PN1I9yCe7SpZ/RrVsmXbqkMWfOKz6mlEQXeLMws25m9i8zW2pmt1axfJCZ/WRmn4cfVweRUyQRDO7Zkx1z5rD9rbfoctJJEevKy8u4//4BhEJGv36Hsn79ah9TSiIKtFmYWSrwBHAecAzQ38yOqaL0NefcieHHs76GFElAGfXrM2/kSJznUfDwwzRp2DBi7Zo133PRRa3Jzk7hqadu0UlxqVLQexanAkudc8ucc8XA34E+AWcSSSqhU06hcPp0ygsKGHbRRRHrnHNMnPgQ2dkp9O7djK++mu9jSol3QTeLNsCK3V6vDL9X2YVm9qWZTTKzg/yJJpJczIxHhgzBeR6rJ0/mwGbNItZu2bKBoUM7EwoZN9+co5PiEnizsCreq7wPPA1o55w7HpgHvFTlB5kNNrOFZrbwp8LCGo4pklxaNm3KfyZNwnkeTwwbRopV9V+xwqef5tOtWyZ5eZnMmzfBx5QSTyzI45NmdgZwl3MuL/z6NgDn3P0R6lOBDc65yLchAzp16OAWjhlT03FFktqOnTs56Zpr+OeKFTFr27Q5gtGjP2S//SLvnUjiCYXsE+dcp6qWBb1n8THQ3swONbN6QD9g6u4FZtZ6t5e9gSU+5hOpMzLq12fJuHE4z+OtBx8kLcqAv//8Zyl9+zanS5c0Xn75Lz6mlKAE2iycc6XADcBsKprAROfcYjO728x6h8uGmtliM/sCGAoMCiatSN2Rd+qplOTnU15QQOeOHSPWlZeX8fzztxMKGX37HsD69Wt8TCl+CvQwVG3RYSiRmvfxkiWc9bvfUVxSErXOzOjd+zqGDXvCp2RSU+L5MJSIJIhd99xwnkevM86IWOec4803nyQUMnr0yNLeRpJQsxCRPTb1vvtwnscnY8bQKDMzYt22bZu56KJWhELGPff014C/BKZmISJ77eQjj2TLzJk4z2Nwz55RL8EtKPg72dkp5OU14Ntvv/IxpdQENQsRqRFjbr6ZsoIClr3yStQBf8XF27n66uMJhYxhw0KUlpb6mFL2lpqFiNSoQ9u0+XnA371XXEF6amrE2i++eJvc3HRyctL54IOZPqaUPaVmISK15o+XX07xvHkUzZjBaUcfHbGurKyUESN6EAoZgwYdw+bNG31MKdWhZiEita5hgwZ8+OSTOM/jzXvuoWFGRsTaH35YQp8+TcnOTmX8+Ad0UjxOqFmIiK96n3UWRbNmUTpvHgNycyPWOVfOs8/eRnZ2Chde2JrvvlvsY0qpTM1CRAKRmprKuBEjcJ7HsldeoWnjxhFrN2xYzZVXdiQ7O4U77uirk+IBULMQkcAd2qYN66dOpbyggLsGDapyOmqoGPD33ntTyM1N57zzGrNgwVu+5qzLNN2HiMSlrdu2ccwVV7B87dqYtYce2pHHH/+Ahg0b+ZAseWm6DxFJOA0bNOCH117DeR4v33YbKVFmwf3uu0X07NmYnJx03njjSR9T1h1qFiIS9y7r2pWy/HzK8vM5/tBDI9aVlZXy2GNDCIWMfv0OYevWIh9TJjc1CxFJGCkpKXzx/PM4z2PGX/4S9Z4ba9Ysp2fPxmRnp/Lss3f6mDI5qVmISELqfuaZP99z45zjj49Y51w548ffQyhknH/+ARQVbfExZfJQsxCRhGZmvP3oozjPI/9vfyOzfv2ItYWFP9GrVxNCIeOxx4b6mDLxqVmISNLIPvlktr31FuUFBVz4299GvAQX4I03HicUMrp3b8KaNT/4ljFRqVmISNIxMybdfTflnsfiF16gRVZWxNrt27fQr187QiHjjjsu0IC/CNQsRCSpHdOuHWunTKG8oIBhF15IapST4u+99wa5uel07ZrBV1/N9zFl/FOzEJE6wcx45IYbKM3PZ/2UKRzbrl3E2pKSnQwd2plQyLj++tPZtm2rf0HjlJqFiNQ5TbOyWPTCCzjP48XbbqN+enrE2iVLFtCjRyNyctJ4442nfEwZXzTdh9Rpvbp3Z8v27THrGmdmMm2mbs5T0+Jp/ZeUltL3j39kxkcfxaxt2bIdjz76Ni1bHlKrmfwWbbqPNL/DiMSTLdu383Y16s6txi802XPxtP7T09KY/uCDACz54QdOve46iiJ83zVrvqdfv3aYpZCd3Z/bbnuJ1Ch3BEwGgR+GMrNuZvYvM1tqZrdWsby+mb0WXr7AzNr5n1JE6pKjDzmELTNnUl5QwA0XXBCxzrly8vPHk5OTRs+e+7No0Yc+pvRXoM3CzFKBJ4DzgGOA/mZ2TKWyq4CNzrkjgEeAB/1NKSJ1lZnx+I034jyPjVOnckCUS3C3bt3EjTeeQSiUwpAhnSkuLvYxae0Les/iVGCpc26Zc64Y+DvQp1JNH+Cl8PNJQBczizbWRkSkxu3XuDFrpkzBeR6PXH99lAF/jq+/nk9eXn26ds0gP/81H1PWnqCbRRtgxW6vV4bfq7LGOVcKFALNKn+Qmckd7WoAAAmOSURBVA02s4VmtvCnwsJaiisiAsMuvphyz6N47lwOa906Yl1JyU7uvbcfoZAxcOAxCb23EXSzqKo5V748qzo1OOfGOuc6Oec6RRutKSJSU9LT0vj21VcrLsG95ZaoA/6WL19CXl59unRJZfLkR31MWTOCbhYrgYN2e90W+DFSjZmlAVnABl/SiYhU08DzzqM0P5/SefM48fDDI9aVl5czevQwQiHjv/7rYIqLd/qYcu8F3Sw+Btqb2aFmVg/oB0ytVDMVGBh+fhFQ4JJxcIiIJIXU1FQ+e/ZZnOcx+a67qBdlwN9PP60gLy+D7OwUxo2718eUey7QZhE+B3EDMBtYAkx0zi02s7vNrHe47DmgmZktBX4P/OryWhGReHTBOeewc84cSufN49wTTohY55zjhRfuIBQy+vRpxqZN63xMWT2BD8pzzs0EZlZ6787dnu8ALvY7l9QNjTMzqzXgq3Fmpg9p6p66sv5TU1PxRo0C4KPFi8m79VY2FVV9y9fNmzfQt28LAHr0uIabbx5DPFwAquk+REQCUFZWxlV//Ssvz51LeYzfw/XrN+CJJxZw+OEdazVTtOk+gj5nISJSJ6WmpvLibbdRVlDAj6+/HvUS3J07t3H11ccRChl/+ENXSkr8vwRXzUJEJGCtmzf/+RLcJ4cOJT3KPFMLF86la9f65ObWZ86cl33LqGYhIhJHruvbl+J589g6cyadjz02Yl1paTH33385oZAxaNAxtX5SXM1CRCQONcjM5L3Ro3Gex0dPPUVGlEtwf/hhCX37tqBLlzQee+xGauNctJqFiEic+81RR7E9fAluv+zsiHXl5WW88cZosrNTOP/8A1i2bFGNZVCzEBFJEKmpqUy44w6c57HytdfIatgwYm1h4U9cddVxZGenMHx4d8rKyvbpe6tZiIgkoDYHHMCm6dNxnsdtl14asc45x0cfzSInJ428vAZ8+OGsvfp+GmchIpIktu/YwWGXXcbq9etj1h511KmMHj3/F3f40zgLEZE6IDMjg1WTJuE8jwcHDyYlysjvf/7zI3Jy0sjJSWfu3AkxP1t7FiIiSWxncTHHDhrEt6tWVadcexYiInVR/Xr1WBoe8PfcH/4QdcBfNGoWIiJ1xJXdu1M8bx47Zs/m5Pbt9+hr1SxEROqY+vXq8cnYsTjP4+2RI2mUkUGTBg2ifk3gU5SLiEhwzjnpJLbMqric1kKhiHXasxARkZjULEREJCY1CxERiUnNQkREYlKzEBGRmNQsREQkJjULERGJKbBmYWZNzWyumX0T/nP/CHVlZvZ5+DHV75wiIhLsnsWtQL5zrj2QH35dle3OuRPDj97+xRMRkV2CbBZ9gJfCz18Czg8wi4iIRBHYFOVmtsk5t99urzc65351KMrMSoHPgVLgAefclAifNxgYHH7ZEai5m8/6rzmwLugQ+0D5g6X8wUrk/Ic451pUtaBWm4WZzQNaVbHoj8BL1WwWBzrnfjSzw4ACoItz7tsY33dhpDnZE4HyB0v5g6X88alWJxJ0zuVEWmZma8ystXNulZm1BtZG+Iwfw38uM7O3gZOAqM1CRERqVpDnLKYCA8PPBwJvVi4ws/3NrH74eXOgM/C1bwlFRAQItlk8AOSa2TdAbvg1ZtbJzJ4N1xwNLDSzLwCPinMW1WkWY2sjsI+UP1jKHyzlj0NJeQ9uERGpWRrBLSIiMalZiIhITEnRLBJ16hAz62Zm/zKzpWb2qxHsZlbfzF4LL19gZu38TxlZNfIPMrOfdlvnVweRsypm9ryZrTWzKsfjWIXHwn+3L83sZL8zRlON/OeaWeFu6/5OvzNGY2YHmZlnZkvMbLGZ/a6Kmrj8GVQze1yv/73inEv4B/BX4Nbw81uBByPUFQWddbcsqVRcAnwYUA/4AjimUs31wNPh5/2A14LOvYf5BwGjg84aIf/ZwMnAogjLuwOzAANOBxYEnXkP858LTA86Z5T8rYGTw88bA/+u4t9PXP4Mqpk9rtf/3jySYs+CxJw65FRgqXNumXOuGPg7FX+P3e3+95oEdDEz8zFjNNXJH7ecc+8AG6KU9AHGuQofAvuFxwPFhWrkj2vOuVXOuU/Dz7cAS4A2lcri8mdQzexJJ1maRUvn3Cqo+EECB0SoyzCzhWb2oZkF3VDaACt2e72SX/+D+7nGOVcKFALNfEkXW3XyA1wYPoQwycwO8idajaju3y+enWFmX5jZLDM7NugwkYQPr54ELKi0KO5/BlGyQ4Ks/+qq1RHcNSnG1CHVdbDbbeoQM/vKxZg6pBZVtYdQ+Trm6tQEpTrZpgETnHM7zexaKvaSsms9Wc2I53VfHZ9SMc9PkZl1B6YA7QPO9Ctm1giYDAxzzm2uvLiKL4mbn0GM7Amx/vdEwuxZOOdynHMdq3i8CazZtXta3alDgLep2CIIykpg9y3ttsCPkWrMLA3IIn4OPcTM75xb75zbGX75DHCKT9lqQnV+PnHLObfZOVcUfj4TSA/PghA3zCydil+2451z/6iiJG5/BrGyJ8L631MJ0yxiSMSpQz4G2pvZoWZWj4oT2JWv0Nr973URUODCZ8/iQMz8lY4v96bi2G6imApcHr4i53SgcNehzkRgZq12nd8ys1Op+L++PthU/yec7TlgiXNuZISyuPwZVCd7vK//vZEwh6FieACYaGZXAcuBi6Fi6hDgWufc1VRMHTLGzMqp+MFVd+qQWuGcKzWzG4DZVFxZ9LxzbrGZ3Q0sdM5NpeIf5MtmtpSKPYp+QeWtrJr5h5pZbyqml99AxdVRccHMJlBxxUpzM1sJ/AlIB3DOPQ3MpOJqnKXANuCKYJJWrRr5LwKus4op/rcD/eJoQwMqNtYGAF+Z2efh90YAB0Pc/wyqkz3e1/8e03QfIiISU7IchhIRkVqkZiEiIjGpWYiISExqFiIiEpOahYiIxKRmISIiMalZiATEzN4ys01mNj3oLCKxqFmIBOchKgZ3icQ9NQuRGmRmvwnPspthZg3DN8fpWFWtcy4f2OJzRJG9kizTfYjEBefcx1ZxF8Z7gUzgFedclXezE0kkahYiNe9uKiZa3AEMDTiLSI3QYSiRmtcUaETFLTczAs4iUiPULERq3ljgDmA88GDAWURqhA5DidQgM7scKHXOvWpmqcB8M8t2zhVUUfsucBTQKDzN+FXOudk+RxapFk1RLiIiMekwlIiIxKTDUCK1yMyOA16u9PZO59xpQeQR2Vs6DCUiIjHpMJSIiMSkZiEiIjGpWYiISExqFiIiEtP/BwmrWzlI6wLPAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_function(line_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_function(line_2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/luisserrano/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:11: UserWarning: No contour levels were found within the data range.\n",
      "  # This is added back by InteractiveShellApp.init_path()\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEHCAYAAABfkmooAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAXb0lEQVR4nO3df5DU9Z3n8ddLxICikwjEmQgRdzOLP4jxx0Rh2Y0SY1SyinVrNpI71JwpVmN+aKU2um6dqbWuajVbpWzi3qqJ1gLBSTxMFHU8KmvYwlVDHAkaCWfkvI3OOYMwsKMjGBl83x/dQzpNz3wa6O5v9/TzUdVFd38/0/Oabw/z+v5uR4QAABjNIVkHAADUP8oCAJBEWQAAkigLAEASZQEASDo06wDV0NIyJVpbZ2QdAwAayq9//dy2iJhaatqYLIvW1hm6++7urGMAQEOZN8+/GWkam6EAAEmUBQAgibIAACSNyX0WADDM3q0jjujRuHHvZB2lbuzZM0Fvvz1NEePL/hrKAsCYdsQRPTrmmCPV0jJDtrOOk7mI0MBAv7Zs6dHg4PFlfx2boQCMaePGvaOWlskURZ5ttbRM3u81LcoCwJhHUfy+A5kflAUAIImyAIAifX29OuWME7RlS19FXq+tbdKo03/zm3/XWWfN2q/XvPrqK/XQQyv3ef7HP/6fOvPMk9XScojWr6/cycmUBQAUuW3Jt/Tqtjd025JvZR1lv5100iytWPEjzZ37iYq+LmUBAAX6+nq1onOp3nviCX2/c2nF1i4kaXBwUBdddK7+9E9P1+zZH9Vjjz28d9rQ0JD+8i+v0Jw5p2jRoku1c+dOSdIvfvGcLrzwbH3iE2fokkvOV19f76jfY+bME9XePrNimYdRFgBQ4LYl39J7l18hnXaa3lt0eUXXLiZMmKAVK36sJ59cr8ceW6Obbvq6hj/a+uWXX9IXvrBYzzzzgo488ih973v/Q7t379Zf/dVXtHz5Sq1d+5wWLfqvuuWWv6lYnv3BeRYAkDe8VvHuxo2SpHdv+Ia+P2uWbrjuGzrmmNaDfv2I0N/+7U16+um1OuSQQ9Tb+//0xhtbJEnTpk3X7NlzJUmf+9x/0V13fVuf+tQF2rTpRS1YcJ4kac+ePTrmmLaDznEgKAsAyNu7VtGW/4Pc1rZ37eL2v7v9oF//gQdWqL9/q9aufU7jx4/XrFkz9M47ufMdig9nta2I0AknnKwnnnjmoL/3wWIzFACoYK3ihm/83vPv3vCNiu27GBgY0JQpH9T48eO1du0avfrq764I/tprr2rdulwprFzZqTlz/kTt7TO1bdvWvc/v3r1bmzZtPOgcB4KyAACVWKsYVrB2cbA+97n/rF/8oltnn92hBx5YoT/6oxP2Tps580R1di7VnDmnaMeO7brqqmt02GGHafnylfrmN2/QH//xxzR37qlat+7pUb/HI4/8WCecME0///kz+uxnP6NLLjn/oHNLkod3rowlM2d2BB9+BECSWlo26SMfOXHUMX19vTrlrJP1zsaN+5aFJPX2asKsWfrluo0V2XdRDzZv3qSBgd+fL/Pm+bmI6Cg1njULAE1vxLWKYRVcu2hUlAWAptfV9bDe/Yclkj3i7d1/WKLHHnso66iZ4WgoAE3vpRdeyTpC3WPNAgCQRFkAAJIoCwBAEmUBoOkd96GjdNRRTt6O+9BRB/T6tbxE+fbt27VgwXk69dR2LVhwnnbs2LFfrzsSygJA09sx+JZCSt52DL6VWcZy3XHHrTr77HO1YcPLOvvsc3XHHbdW5HUpCwCokVpcovyxxx7W5z9/hSTp85+/Qo8+WpnDfTMtC9vTba+xvcn2RttfKzHmHNsDtjfkbzdnkRUADlYtLlG+desWtbbmTi5sbW3Ttm1vVCR71udZDEn6ekSst32kpOds/yQiflU07smI+LMM8gFAxXCJ8gMUEb2SevP337K9SdKxkorLAgAaXi0uUT516jHq6+tVa2ub+vp6NWXKByuSvW72WdieIek0SetKTJ5j+3nbj9s+eYSvX2y723b3wMDWKiYFgANTi0uUz59/se6/f6kk6f77l+ozn1lQkex1URa2J0l6UNJ1EfFm0eT1ko6LiI9J+o6kkntrIuKeiOiIiI6WlqnVDQwAB6AWlyi//vobtWbNT3Tqqe1as+Ynuv76GyuSPfNLlNseL+lRSasjIvlRVLb/XVJHRGwbaQyXKAcwrJxLlB91lFXOX0JLevPNsfGxDg11iXLnNtLdK2nTSEVhuzU/TrbPVC5zf+1SAgCyPhpqrqRFkn5pe0P+uZskfViSIuIuSZdKusb2kKRdki6LrFeHAIwpH5h0pFzGCXcfmHRkDdLUp6yPhvo35dbsRhtzp6Q7a5MIwFgUEfscbVToN68X7yod2w5kebsudnADQLXs2TNBAwP9B/QHciyKCA0M9GvPngn79XVZb4YCgKp6++1p2rKlR9u2cUj9sD17Jujtt6ft19dQFgDGtIjxGhw8PusYDY/NUACAJMoCAJBEWQAAkigLAEASZQEASKIsAABJlAUAIImyAAAkURYAgCTKAgCQRFkAAJIoCwBAEmUBAEiiLAAASZQFACCJsgAAJFEWAIAkPikvYxfNn6/BXTuT4yZNPFyPdHXVIFFz6+/v11euv153Llmio48+Ous4TYf5X79Ys8jY4K6dWiMlb+UUCg7ess5O9e3YoWWdnVlHaUrM//qVaVnYnm57je1Ntjfa/lqJMbb9bdubbb9g+/QssmLs6+/v1+OrVytuv12Pr16t7du3Zx2pqTD/61vWaxZDkr4eESdKmi3pWtsnFY25UFJ7/rZY0j/VNiKaxbLOTsX550vt7Xrv059m6bbGmP/1LdOyiIjeiFifv/+WpE2Sji0atkDSssj5maT3226rcVSMccNLtUMLF0qShhYuZOm2hpj/9S/rNYu9bM+QdJqkdUWTjpX0WsHjHu1bKLK92Ha37e6Bga3Viokxau9S7eTJuScmT2bptoaY//WvLsrC9iRJD0q6LiLeLJ5c4ktinyci7omIjojoaGmZWo2YGKOKl2qHsXRbG8z/xpB5Wdger1xRrIiIH5UY0iNpesHjaZJer0U2NId9lmqHsXRbE8z/xpD10VCWdK+kTRFx+wjDVkm6PH9U1GxJAxHRW7OQGNNGWqodxtJtdTH/G0fWaxZzJS2S9EnbG/K3+bavtn11fkyXpFckbZb0XUlfyigrxqARl2qHsXRbVcz/xpHpGdwR8W8qvU+icExIurY2iWpv0sTDNa/MM7hReU8/9ZSG+nqlB1eOOGZI0lOtbbru2jH7a5gZ5n/jcO5v8dgyc2ZH3H13d9YxAKChzJvn5yKio9S0rDdDAQAaAGUBAEiiLAAASZQFACCJsgAAJFEWAIAkygIAkERZAACSKAsAQBJlAQBIoiwAAEmUBQAgibIAACRRFgCAJMoCAJBEWQAAkigLAEASZQEASKIsAABJlAUAIImyAAAkZVoWtu+z/YbtF0eYfo7tAdsb8reba50RACAdmvH3/2dJd0paNsqYJyPiz2oTBwBQSqZrFhGxVtL2LDMAANIaYZ/FHNvP237c9skjDbK92Ha37e6Bga21zAcAY169l8V6ScdFxMckfUfSQyMNjIh7IqIjIjpaWqbWLCAANIO6LouIeDMiBvP3uySNtz0l41gA0HTquixst9p2/v6ZyuXtzzYVADSfTI+Gst0p6RxJU2z3SPqmpPGSFBF3SbpU0jW2hyTtknRZRERGcQGgaWVaFhGxMDH9TuUOrQUAZKiuN0MBAOoDZQEASKIsAABJlAUAIImyAAAkJcvC9lG2/7DE86dUJxIAoN6MWha2/0LS/5b0oO2Ntj9eMPmfqxkMAFA/UmsWN0k6IyJOlfQFSctt/6f8NFc1GQCgbqROyhsXEb2SFBE/tz1P0qO2p0niTGoAaBKpNYu3CvdX5IvjHEkLJI14uXAAwNiSWrO4RkWbmyLiLdsXSPqLqqUCANSVUdcsIuL5iNhc4vndEbFi+LHtZ6oRDgBQHyp1nsWECr0OAKAOVaos2NkNAGMYZ3ADAJLKKgvbJ5V47pzCh5UKBACoP+WuWTxg+wbnTLT9HUl/VzB9URWyAQDqRLllcZak6ZKelvSspNclzR2eGBEvVj4aAKBelFsWu5X7DOyJyh359H8j4r2qpQIA1JVyy+JZ5cri45L+RNJC2yurlgoAUFdSZ3APuyoiuvP3+yQtsM1+CgBoEmWVRUFRFD63vPJxms9F8+drcNfO5LhJEw/XI11dNUjU3Pr7+/WV66/XnUuW6Oijj846TtNh/tevzM+zsH2f7Tdsl9xJnj8C69u2N9t+wfbptc5YTYO7dmqNlLyVUyg4eMs6O9W3Y4eWdXZmHaUpMf/rV+ZlodyHKF0wyvQLJbXnb4sl/VMNMqEJ9ff36/HVqxW3367HV6/W9u3bs47UVJj/9S3zsoiItZJG+61YIGlZ5PxM0vttt9UmHZrJss5OxfnnS+3teu/Tn2bptsaY//Ut87Iow7GSXit43JN/DqiY4aXaoYULJUlDCxeydFtDzP/61whlUepSIvtcuND2YtvdtrsHBrbWIBbGkr1LtZMn556YPJml2xpi/te/RiiLHuXOHh82TbkzyH9PRNwTER0R0dHSMrVm4dD4ipdqh7F0WxvM/8bQCGWxStLl+aOiZksaGP5ccKAS9lmqHcbSbU0w/xtD5mVhu1PSM5Jm2u6xfZXtq21fnR/SJekVSZslfVfSlzKKijFopKXaYSzdVhfzv3FkXhYRsTAi2iJifERMi4h7I+KuiLgrPz0i4tqI+MOI+GipEwSBAzXiUu0wlm6rivnfOMq93AeqZNLEwzWvzDO4UXlPP/WUhvp6pQdHvtTZkKSnWtt03bXX1i5Yk2D+Nw5HjL1PRJ05syPuvpsVEADYH/Pm+bmI6Cg1LfPNUACA+kdZAACSKAsAQBJlAQBIoiwAAEmUBQAgibIAACRRFgCAJMoCAJBEWQAAkigLAEASZQEASKIsAABJlAUAIImyAAAkURYAgCTKAgCQRFkAAJIoCwBAEmUBAEjKvCxsX2D7Jdubbd9YYvqVtrfa3pC/fTGLnADQzA7N8pvbHifpHyWdJ6lH0rO2V0XEr4qG/jAivlzzgAAASdmvWZwpaXNEvBIR70r6gaQFGWcCABTJuiyOlfRaweOe/HPF/tz2C7ZX2p5em2gAgGFZl4VLPBdFjx+RNCMiTpH0L5KWlnwhe7HtbtvdAwNbKxwTAJpb1mXRI6lwTWGapNcLB0REf0T8Nv/wu5LOKPVCEXFPRHREREdLy9SqhAWAZpV1WTwrqd328bYPk3SZpFWFA2y3FTy8WNKmGuYDACjjo6EiYsj2lyWtljRO0n0RsdH2LZK6I2KVpK/avljSkKTtkq7MLDAANKlMy0KSIqJLUlfRczcX3P9rSX9d61wAgN/JejMUAKABUBYAgCTKAgCQRFkAAJIoCwBAEmUBAEiiLAAASZQFACCJsgAAJFEWAIAkygIAkERZAACSKAsAQBJlAQBIoiwAAEmUBQAgibIAACRRFgCAJMoCAJBEWQAAkigLAEDSoVkHALJ00fz5Gty1Mzlu0sTD9UhXVw0SNRfmf+OgLNDUBnft1Joyxs0r4w8a9h/zv3FkvhnK9gW2X7K92faNJaa/z/YP89PX2Z5R+5QA0NwyLQvb4yT9o6QLJZ0kaaHtk4qGXSVpR0R8RNIdkm6rbUoAQNZrFmdK2hwRr0TEu5J+IGlB0ZgFkpbm76+UdK5t1zAjADS9rMviWEmvFTzuyT9XckxEDEkakDS5+IVsL7bdbbt7YGBrleICQHPKuixKrSHEAYxRRNwTER0R0dHSMrUi4QAAOVmXRY+k6QWPp0l6faQxtg+V1CJpe03SAQAkZV8Wz0pqt3287cMkXSZpVdGYVZKuyN+/VNJPI2KfNQsAQPVkep5FRAzZ/rKk1ZLGSbovIjbavkVSd0SsknSvpOW2Nyu3RnFZdokBoDllflJeRHRJ6ip67uaC++9I+mytc6E5TJp4eFknfE2aeHgN0jQf5n/jyLwsgCxxCYlsMf8bR9b7LAAADYCyAAAkURYAgCTKAgCQRFkAAJIoCwBAEmUBAEiiLAAASZQFACCJsgAAJFEWAIAkygIAkERZAACSKAsAQBJlAQBIoiwAAEmUBQAgibIAACRRFgCAJMoCAJBEWQAAkjIrC9tH2/6J7Zfz/35ghHF7bG/I31bVOicAINs1ixslPRER7ZKeyD8uZVdEnJq/XVy7eACAYVmWxQJJS/P3l0q6JMMsAIBROCKy+cb2f0TE+wse74iIfTZF2R6StEHSkKRbI+KhEV5vsaTF+YezJL1Y+dQ1M0XStqxDHATyZ4v82Wrk/MdFxNRSE6paFrb/RVJriUl/I2lpmWXxoYh43fYfSPqppHMj4v8kvm93RHQcZPzMkD9b5M8W+evTodV88Yj41EjTbG+x3RYRvbbbJL0xwmu8nv/3Fdv/Kuk0SaOWBQCgsrLcZ7FK0hX5+1dIerh4gO0P2H5f/v4USXMl/apmCQEAkrIti1slnWf7ZUnn5R/Ldoft7+XHnCip2/bzktYot8+inLK4pxqBa4j82SJ/tshfhzLbwQ0AaBycwQ0ASKIsAABJY6IsGvXSIbYvsP2S7c229zmD3fb7bP8wP32d7Rm1TzmyMvJfaXtrwTz/YhY5S7F9n+03bJc8H8c5387/bC/YPr3WGUdTRv5zbA8UzPuba51xNLan215je5Ptjba/VmJMXb4HZWav6/l/QCKi4W+SviXpxvz9GyXdNsK4wayzFmQZp9whwH8g6TBJz0s6qWjMlyTdlb9/maQfZp17P/NfKenOrLOOkP8Tkk6X9OII0+dLelySJc2WtC7rzPuZ/xxJj2adc5T8bZJOz98/UtKvS/z+1OV7UGb2up7/B3IbE2sWasxLh5wpaXNEvBIR70r6gXI/R6HCn2ulpHNtu4YZR1NO/roVEWslbR9lyAJJyyLnZ5Lenz8fqC6Ukb+uRURvRKzP339L0iZJxxYNq8v3oMzsY85YKYtjIqJXyr2Rkj44wrgJtrtt/8x21oVyrKTXCh73aN9fuL1jImJI0oCkyTVJl1ZOfkn68/wmhJW2p9cmWkWU+/PVszm2n7f9uO2Tsw4zkvzm1dMkrSuaVPfvwSjZpQaZ/+Wq6hnclZS4dEi5PhwFlw6x/ctIXDqkikqtIRQfx1zOmKyUk+0RSZ0R8VvbVyu3lvTJqierjHqe9+VYr9x1fgZtz5f0kKT2jDPtw/YkSQ9Kui4i3iyeXOJL6uY9SGRviPm/PxpmzSIiPhURs0rcHpa0ZXj1tNxLh0j6V+WWCLLSI6lwSXuapNdHGmP7UEktqp9ND8n8EdEfEb/NP/yupDNqlK0Synl/6lZEvBkRg/n7XZLG56+CUDdsj1fuj+2KiPhRiSF1+x6ksjfC/N9fDVMWCY146ZBnJbXbPt72YcrtwC4+Qqvw57pU0k8jv/esDiTzF21fvli5bbuNYpWky/NH5MyWNDC8qbMR2G4d3r9l+0zl/q/3Z5vqd/LZ7pW0KSJuH2FYXb4H5WSv9/l/IBpmM1TCrZIesH2VpFclfVbKXTpE0tUR8UXlLh1yt+33lHvjyr10SFVExJDtL0tardyRRfdFxEbbt0jqjohVyv1CLre9Wbk1isuyyluszPxftX2xcpeX367c0VF1wXanckesTLHdI+mbksZLUkTcJalLuaNxNkvaKekL2SQtrYz8l0q6xrlL/O+SdFkdLWhIuYW1RZJ+aXtD/rmbJH1Yqvv3oJzs9T7/9xuX+wAAJI2VzVAAgCqiLAAASZQFACCJsgAAJFEWAIAkygIAkERZABmx/b9s/4ftR7POAqRQFkB2/l65k7uAukdZABVk++P5q+xOsH1E/sNxZpUaGxFPSHqrxhGBAzJWLvcB1IWIeNa5T2H875ImSvp+RJT8NDugkVAWQOXdotyFFt+R9NWMswAVwWYooPKOljRJuY/cnJBxFqAiKAug8u6R9N8krZB0W8ZZgIpgMxRQQbYvlzQUEffbHifpadufjIiflhj7pKQTJE3KX2b8qohYXePIQFm4RDkAIInNUACAJDZDAVVk+6OSlhc9/duIOCuLPMCBYjMUACCJzVAAgCTKAgCQRFkAAJIoCwBA0v8HQDIyTZFZtpcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_function(bias)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Boundaries of the second layer (non-linear classifiers)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_function(nn_with_step)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_function(nn_with_sigmoid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
